Função de Ativação Sigmoide
Usamos a função Sigmoide para introduzir não-linearidade, permitindo que a rede aprenda padrões complexos. Sua derivada é essencial para o backpropagation.
Sigmoid(x) = 1 / (1 + e-x)
Sigmoid'(x) = Sigmoid(x) * (1 - Sigmoid(x))
Passo de Feedforward
O sinal flui das entradas, através da camada oculta, até a camada de saída. Cada neurônio calcula sua saída com base na soma ponderada de suas entradas e seu bias, aplicada à função Sigmoide.
Neurônios da Camada Oculta (Hj)
Para cada neurônio oculto Hj:
NetHj = (X1 * W1j) + (X2 * W2j) + BiasHj
OutHj = Sigmoid(NetHj)
- X1, X2 são as entradas.
- W1j, W2j são os pesos das entradas para o neurônio Hj.
- BiasHj é o bias do neurônio Hj.
Neurônio de Saída (Ŷ)
Para o neurônio de saída Ŷ (O1):
NetO1 = Σ (OutHj * WHj,O1) + BiasO1
Ŷ = OutO1 = Sigmoid(NetO1)
- OutHj são as saídas dos neurônios da camada oculta.
- WHj,O1 são os pesos dos neurônios ocultos para o neurônio de saída.
- BiasO1 é o bias do neurônio de saída.
Passo de Backpropagation (Ajuste de Pesos)
O erro entre a saída prevista (Ŷ) e a saída desejada (Y) é propagado de volta pela rede, ajustando os pesos e biases para minimizar esse erro. A taxa de aprendizado (η) controla a magnitude desses ajustes.
Erro e Delta da Camada de Saída
Erro = Y - Ŷ
DeltaO1 = Erro * Sigmoid'(NetO1)
Ajuste de Pesos e Bias da Camada de Saída
Para cada peso WHj,O1 e o BiasO1:
ΔWHj,O1 = η * DeltaO1 * OutHj
WHj,O1 (novo) = WHj,O1 (antigo) + ΔWHj,O1
ΔBiasO1 = η * DeltaO1
BiasO1 (novo) = BiasO1 (antigo) + ΔBiasO1
Delta e Ajuste de Pesos da Camada Oculta
Para cada neurônio oculto Hj:
DeltaHj = DeltaO1 * WHj,O1 * Sigmoid'(NetHj)
ΔWij = η * DeltaHj * Xi
Wij (novo) = Wij (antigo) + ΔWij
ΔBiasHj = η * DeltaHj
BiasHj (novo) = BiasHj (antigo) + ΔBiasHj